package com.theaf.basemodule.common.api;


import com.theaf.basemodule.common.condition.AreaCondition;
import com.theaf.basemodule.common.dto.AreaDTO;
import com.theaf.basemodule.common.vo.AreaVO;

import java.util.List;

/**
 * @Author:songwenke
 * @Description:地区服务接口
 * @Date:create in 15:53 2017/12/21
 * @Modified By:
 **/
public interface AreaService{
    public static String TYPE_DIC_NAME = "AREA_TYPE";
    /**
     * 查询地区信息
     * @param id
     * @return
     */
    AreaDTO findById(Long id);

    /**
     * 查询直接下属地区
     * @param id
     * @return
     */
    List<AreaDTO> findDirecdChild(Long id);

    /**
     * 查询下属地区
     * @param id
     * @return
     */
    List<AreaDTO> findChild(Long id);

    /**
     * 保存地区
     * @param areaVO
     */
    Long save(AreaVO areaVO);

    /**
     * 删除地区
     * @param id
     */
    void delete(Long id);

    /**
     * 获取指定类型的上级地区
     * @param id
     * @param type
     * @return
     */
    AreaDTO findParentByType(Long id,String type);

    /**
     * 获取地区的全称名称
     * @param id 地区id
     * @return
     */
    String getFullNameById(Long id);

    /**
     * 查询地区类型
     * @param condition 条件
     * @return
     */
    List<AreaDTO> findArea(AreaCondition condition);
}
